<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>gdsl: Low-level doubly-linked list manipulation module</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">gdsl
   &#160;<span id="projectnumber">1.7</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group____gdsl__list.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Low-level doubly-linked list manipulation module</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group____gdsl__node.html#ga05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">GDSL low-level doubly-linked list type.  <a href="#ga14ec3b9bcad935bbefd3ed0a7d16ec60"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga57a11c1dce767fba29167f0e09490273">_gdsl_list_alloc</a> (const <a class="el" href="group__gdsl__types.html#ga0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> E)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new low-level list.  <a href="#ga57a11c1dce767fba29167f0e09490273"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga1d678c65359011d9fdd30bc5bf3868ad">_gdsl_list_free</a> (<a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group__gdsl__types.html#ga2c6b3f96b291b5b39d2799f93e350053">gdsl_free_func_t</a> FREE_F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a low-level list.  <a href="#ga1d678c65359011d9fdd30bc5bf3868ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gdsl__types.html#gaf6a258d8f3ee5206d682d799316314b1">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga8a96775d8a4f2ef2bc8314e1c9fa1b88">_gdsl_list_is_empty</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a low-level list is empty.  <a href="#ga8a96775d8a4f2ef2bc8314e1c9fa1b88"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gdsl__types.html#ga9c34ac44da309b004570530c8cec8a0e">ulong</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga248e9f738c456411893c3190e83cefc0">_gdsl_list_get_size</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a low-level list.  <a href="#ga248e9f738c456411893c3190e83cefc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga37955fa777f96d9ed9626952dc5b49b1">_gdsl_list_link</a> (<a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L1, <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Link two low-level lists together.  <a href="#ga37955fa777f96d9ed9626952dc5b49b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga5d52d9c65f0f33ccdbbe50bbb0b94f30">_gdsl_list_insert_after</a> (<a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> PREV)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a low-level list after another one.  <a href="#ga5d52d9c65f0f33ccdbbe50bbb0b94f30"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga429e78d2df26cc234e95d63af0a6af71">_gdsl_list_insert_before</a> (<a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> SUCC)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a low-level list before another one.  <a href="#ga429e78d2df26cc234e95d63af0a6af71"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga1d63ca580e0a81b65cf82cb1745b8f2c">_gdsl_list_remove</a> (<a class="el" href="group____gdsl__node.html#ga05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a> NODE)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a node from a low-level list.  <a href="#ga1d63ca580e0a81b65cf82cb1745b8f2c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gabf2044c1f1b5a93cb4b41bedf73263d9">_gdsl_list_search</a> (<a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group__gdsl__types.html#ga200177a9a1ac3f2363e228b0e5faeda7">gdsl_compare_func_t</a> COMP_F, void *VALUE)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for a particular node in a low-level list.  <a href="#gabf2044c1f1b5a93cb4b41bedf73263d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gac1c5040a9d4148395bc565fc49fd0d56">_gdsl_list_map_forward</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#ga0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a> MAP_F, void *USER_DATA)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a low-level list in forward order.  <a href="#gac1c5040a9d4148395bc565fc49fd0d56"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gaaea78d722a9d8459e11c4ca964821772">_gdsl_list_map_backward</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#ga0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a> MAP_F, void *USER_DATA)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a low-level list in backward order.  <a href="#gaaea78d722a9d8459e11c4ca964821772"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga85f7da27dbb6602503a994e321213cd7">_gdsl_list_write</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write all nodes of a low-level list to a file.  <a href="#ga85f7da27dbb6602503a994e321213cd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga40b6ddda2aaedcdcf3daee1bfe9f5428">_gdsl_list_write_xml</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write all nodes of a low-level list to a file into XML.  <a href="#ga40b6ddda2aaedcdcf3daee1bfe9f5428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#ga695985820d95fd3e89856efbcfb39b46">_gdsl_list_dump</a> (const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the internal structure of a low-level list to a file.  <a href="#ga695985820d95fd3e89856efbcfb39b46"></a><br/></td></tr>
</table>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga14ec3b9bcad935bbefd3ed0a7d16ec60"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_t" ref="ga14ec3b9bcad935bbefd3ed0a7d16ec60" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="group____gdsl__node.html#ga05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a> <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>GDSL low-level doubly-linked list type. </p>
<p>This type is voluntary opaque. Variables of this kind could'nt be directly used, but by the functions of this module. </p>

<p>Definition at line <a class="el" href="__gdsl__list_8h_source.html#l00054">54</a> of file <a class="el" href="__gdsl__list_8h_source.html">_gdsl_list.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga57a11c1dce767fba29167f0e09490273"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_alloc" ref="ga57a11c1dce767fba29167f0e09490273" args="(const gdsl_element_t E)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> <a class="el" href="group____gdsl__list.html#ga57a11c1dce767fba29167f0e09490273">_gdsl_list_alloc</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__gdsl__types.html#ga0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a>&#160;</td>
          <td class="paramname"><em>E</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new low-level list. </p>
<p>Allocate a new low-level list data structure which have only one node. The node's content is set to E.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>nothing. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">E</td><td>The content of the first node of the new low-level list to create. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly allocated low-level list in case of success. </dd>
<dd>
NULL in case of insufficient memory. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga1d678c65359011d9fdd30bc5bf3868ad" title="Destroy a low-level list.">_gdsl_list_free()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga1d678c65359011d9fdd30bc5bf3868ad"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_free" ref="ga1d678c65359011d9fdd30bc5bf3868ad" args="(_gdsl_list_t L, const gdsl_free_func_t FREE_F)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga1d678c65359011d9fdd30bc5bf3868ad">_gdsl_list_free</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__gdsl__types.html#ga2c6b3f96b291b5b39d2799f93e350053">gdsl_free_func_t</a>&#160;</td>
          <td class="paramname"><em>FREE_F</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a low-level list. </p>
<p>Flush and destroy the low-level list L. If FREE_F != NULL, then the FREE_F function is used to deallocated each L's element. Otherwise, nothing is done with L's elements.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>nothing. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to destroy. </td></tr>
    <tr><td class="paramname">FREE_F</td><td>The function used to deallocated L's nodes contents. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga57a11c1dce767fba29167f0e09490273" title="Create a new low-level list.">_gdsl_list_alloc()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga8a96775d8a4f2ef2bc8314e1c9fa1b88"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_is_empty" ref="ga8a96775d8a4f2ef2bc8314e1c9fa1b88" args="(const _gdsl_list_t L)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__gdsl__types.html#gaf6a258d8f3ee5206d682d799316314b1">bool</a> <a class="el" href="group____gdsl__list.html#ga8a96775d8a4f2ef2bc8314e1c9fa1b88">_gdsl_list_is_empty</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check if a low-level list is empty. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>nothing. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to check. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if the low-level list L is empty. </dd>
<dd>
FALSE if the low-level list L is not empty. </dd></dl>

</div>
</div>
<a class="anchor" id="ga248e9f738c456411893c3190e83cefc0"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_get_size" ref="ga248e9f738c456411893c3190e83cefc0" args="(const _gdsl_list_t L)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__gdsl__types.html#ga9c34ac44da309b004570530c8cec8a0e">ulong</a> <a class="el" href="group____gdsl__list.html#ga248e9f738c456411893c3190e83cefc0">_gdsl_list_get_size</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of a low-level list. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>nothing. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of elements of L (noted |L|). </dd></dl>

</div>
</div>
<a class="anchor" id="ga37955fa777f96d9ed9626952dc5b49b1"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_link" ref="ga37955fa777f96d9ed9626952dc5b49b1" args="(_gdsl_list_t L1, _gdsl_list_t L2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga37955fa777f96d9ed9626952dc5b49b1">_gdsl_list_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Link two low-level lists together. </p>
<p>Link the low-level list L2 after the end of the low-level list L1. So L1 is before L2.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L1| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>L1 &amp; L2 must be non-empty _gdsl_list_t. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L1</td><td>The low-level list to link before L2. </td></tr>
    <tr><td class="paramname">L2</td><td>The low-level list to link after L1. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5d52d9c65f0f33ccdbbe50bbb0b94f30"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_insert_after" ref="ga5d52d9c65f0f33ccdbbe50bbb0b94f30" args="(_gdsl_list_t L, _gdsl_list_t PREV)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga5d52d9c65f0f33ccdbbe50bbb0b94f30">_gdsl_list_insert_after</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>PREV</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a low-level list after another one. </p>
<p>Insert the low-level list L after the low-level list PREV.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>L &amp; PREV must be non-empty _gdsl_list_t. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to link after PREV. </td></tr>
    <tr><td class="paramname">PREV</td><td>The low-level list that will be linked before L. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga429e78d2df26cc234e95d63af0a6af71" title="Insert a low-level list before another one.">_gdsl_list_insert_before()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga1d63ca580e0a81b65cf82cb1745b8f2c" title="Remove a node from a low-level list.">_gdsl_list_remove()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga429e78d2df26cc234e95d63af0a6af71"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_insert_before" ref="ga429e78d2df26cc234e95d63af0a6af71" args="(_gdsl_list_t L, _gdsl_list_t SUCC)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga429e78d2df26cc234e95d63af0a6af71">_gdsl_list_insert_before</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>SUCC</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a low-level list before another one. </p>
<p>Insert the low-level list L before the low-level list SUCC.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>L &amp; SUCC must be non-empty _gdsl_list_t. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to link before SUCC. </td></tr>
    <tr><td class="paramname">SUCC</td><td>The low-level list that will be linked after L. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga5d52d9c65f0f33ccdbbe50bbb0b94f30" title="Insert a low-level list after another one.">_gdsl_list_insert_after()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga1d63ca580e0a81b65cf82cb1745b8f2c" title="Remove a node from a low-level list.">_gdsl_list_remove()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga1d63ca580e0a81b65cf82cb1745b8f2c"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_remove" ref="ga1d63ca580e0a81b65cf82cb1745b8f2c" args="(_gdsl_node_t NODE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga1d63ca580e0a81b65cf82cb1745b8f2c">_gdsl_list_remove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__node.html#ga05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a>&#160;</td>
          <td class="paramname"><em>NODE</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a node from a low-level list. </p>
<p>Unlink the node NODE from the low-level list in which it is inserted.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>NODE must be a non-empty _gdsl_node_t. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">NODE</td><td>The low-level node to unlink from the low-level list in which it's linked. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga5d52d9c65f0f33ccdbbe50bbb0b94f30" title="Insert a low-level list after another one.">_gdsl_list_insert_after()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga429e78d2df26cc234e95d63af0a6af71" title="Insert a low-level list before another one.">_gdsl_list_insert_before()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabf2044c1f1b5a93cb4b41bedf73263d9"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_search" ref="gabf2044c1f1b5a93cb4b41bedf73263d9" args="(_gdsl_list_t L, const gdsl_compare_func_t COMP_F, void *VALUE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> <a class="el" href="group____gdsl__list.html#gabf2044c1f1b5a93cb4b41bedf73263d9">_gdsl_list_search</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__gdsl__types.html#ga200177a9a1ac3f2363e228b0e5faeda7">gdsl_compare_func_t</a>&#160;</td>
          <td class="paramname"><em>COMP_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>VALUE</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Search for a particular node in a low-level list. </p>
<p>Research an element e in the low-level list L, by using COMP_F function to find the first element e equal to VALUE.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>COMP_F != NULL </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to use </td></tr>
    <tr><td class="paramname">COMP_F</td><td>The comparison function to use to compare L's elements with VALUE to find the element e </td></tr>
    <tr><td class="paramname">VALUE</td><td>The value that must be used by COMP_F to find the element e </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the sub-list starting by e if it's found. </dd>
<dd>
NULL if VALUE is not found in L. </dd></dl>

</div>
</div>
<a class="anchor" id="gac1c5040a9d4148395bc565fc49fd0d56"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_map_forward" ref="gac1c5040a9d4148395bc565fc49fd0d56" args="(const _gdsl_list_t L, const _gdsl_node_map_func_t MAP_F, void *USER_DATA)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> <a class="el" href="group____gdsl__list.html#gac1c5040a9d4148395bc565fc49fd0d56">_gdsl_list_map_forward</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group____gdsl__node.html#ga0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a>&#160;</td>
          <td class="paramname"><em>MAP_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>USER_DATA</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a low-level list in forward order. </p>
<p>Parse all nodes of the low-level list L in forward order. The MAP_F function is called on each node with the USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then <a class="el" href="group____gdsl__list.html#gac1c5040a9d4148395bc565fc49fd0d56" title="Parse a low-level list in forward order.">_gdsl_list_map_forward()</a> stops and returns its last examinated node.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>MAP_F != NULL. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>Th low-level list to map. </td></tr>
    <tr><td class="paramname">MAP_F</td><td>The map function. </td></tr>
    <tr><td class="paramname">USER_DATA</td><td>User's datas. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first node for which MAP_F returns GDSL_MAP_STOP. </dd>
<dd>
NULL when the parsing is done. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#gaaea78d722a9d8459e11c4ca964821772" title="Parse a low-level list in backward order.">_gdsl_list_map_backward()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaaea78d722a9d8459e11c4ca964821772"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_map_backward" ref="gaaea78d722a9d8459e11c4ca964821772" args="(const _gdsl_list_t L, const _gdsl_node_map_func_t MAP_F, void *USER_DATA)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> <a class="el" href="group____gdsl__list.html#gaaea78d722a9d8459e11c4ca964821772">_gdsl_list_map_backward</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group____gdsl__node.html#ga0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a>&#160;</td>
          <td class="paramname"><em>MAP_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>USER_DATA</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a low-level list in backward order. </p>
<p>Parse all nodes of the low-level list L in backward order. The MAP_F function is called on each node with the USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then <a class="el" href="group____gdsl__list.html#gaaea78d722a9d8459e11c4ca964821772" title="Parse a low-level list in backward order.">_gdsl_list_map_backward()</a> stops and returns its last examinated node.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( 2 |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>L must be a non-empty _gdsl_list_t &amp; MAP_F != NULL. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>Th low-level list to map. </td></tr>
    <tr><td class="paramname">MAP_F</td><td>The map function. </td></tr>
    <tr><td class="paramname">USER_DATA</td><td>User's datas. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first node for which MAP_F returns GDSL_MAP_STOP. </dd>
<dd>
NULL when the parsing is done. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#gac1c5040a9d4148395bc565fc49fd0d56" title="Parse a low-level list in forward order.">_gdsl_list_map_forward()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga85f7da27dbb6602503a994e321213cd7"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_write" ref="ga85f7da27dbb6602503a994e321213cd7" args="(const _gdsl_list_t L, const _gdsl_node_write_func_t WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga85f7da27dbb6602503a994e321213cd7">_gdsl_list_write</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a>&#160;</td>
          <td class="paramname"><em>WRITE_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>OUTPUT_FILE</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>USER_DATA</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write all nodes of a low-level list to a file. </p>
<p>Write the nodes of the low-level list L to OUTPUT_FILE, using WRITE_F function. Additionnal USER_DATA argument could be passed to WRITE_F.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>WRITE_F != NULL &amp; OUTPUT_FILE != NULL. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to write. </td></tr>
    <tr><td class="paramname">WRITE_F</td><td>The write function. </td></tr>
    <tr><td class="paramname">OUTPUT_FILE</td><td>The file where to write L's nodes. </td></tr>
    <tr><td class="paramname">USER_DATA</td><td>User's datas passed to WRITE_F. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga40b6ddda2aaedcdcf3daee1bfe9f5428" title="Write all nodes of a low-level list to a file into XML.">_gdsl_list_write_xml()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga695985820d95fd3e89856efbcfb39b46" title="Dump the internal structure of a low-level list to a file.">_gdsl_list_dump()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga40b6ddda2aaedcdcf3daee1bfe9f5428"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_write_xml" ref="ga40b6ddda2aaedcdcf3daee1bfe9f5428" args="(const _gdsl_list_t L, const _gdsl_node_write_func_t WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga40b6ddda2aaedcdcf3daee1bfe9f5428">_gdsl_list_write_xml</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a>&#160;</td>
          <td class="paramname"><em>WRITE_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>OUTPUT_FILE</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>USER_DATA</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write all nodes of a low-level list to a file into XML. </p>
<p>Write the nodes of the low-level list L to OUTPUT_FILE, into XML language. If WRITE_F != NULL, then uses WRITE_F function to write L's nodes to OUTPUT_FILE. Additionnal USER_DATA argument could be passed to WRITE_F.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>OUTPUT_FILE != NULL. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to write. </td></tr>
    <tr><td class="paramname">WRITE_F</td><td>The write function. </td></tr>
    <tr><td class="paramname">OUTPUT_FILE</td><td>The file where to write L's nodes. </td></tr>
    <tr><td class="paramname">USER_DATA</td><td>User's datas passed to WRITE_F. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga85f7da27dbb6602503a994e321213cd7" title="Write all nodes of a low-level list to a file.">_gdsl_list_write()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga695985820d95fd3e89856efbcfb39b46" title="Dump the internal structure of a low-level list to a file.">_gdsl_list_dump()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga695985820d95fd3e89856efbcfb39b46"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_dump" ref="ga695985820d95fd3e89856efbcfb39b46" args="(const _gdsl_list_t L, const _gdsl_node_write_func_t WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group____gdsl__list.html#ga695985820d95fd3e89856efbcfb39b46">_gdsl_list_dump</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group____gdsl__list.html#ga14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a>&#160;</td>
          <td class="paramname"><em>L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group____gdsl__node.html#gadad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a>&#160;</td>
          <td class="paramname"><em>WRITE_F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>OUTPUT_FILE</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>USER_DATA</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump the internal structure of a low-level list to a file. </p>
<p>Dump the structure of the low-level list L to OUTPUT_FILE. If WRITE_F != NULL, then uses WRITE_F function to write L's nodes to OUTPUT_FILE. Additionnal USER_DATA argument could be passed to WRITE_F.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>OUTPUT_FILE != NULL. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">L</td><td>The low-level list to dump. </td></tr>
    <tr><td class="paramname">WRITE_F</td><td>The write function. </td></tr>
    <tr><td class="paramname">OUTPUT_FILE</td><td>The file where to write L's nodes. </td></tr>
    <tr><td class="paramname">USER_DATA</td><td>User's datas passed to WRITE_F. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#ga85f7da27dbb6602503a994e321213cd7" title="Write all nodes of a low-level list to a file.">_gdsl_list_write()</a> </dd>
<dd>
<a class="el" href="group____gdsl__list.html#ga40b6ddda2aaedcdcf3daee1bfe9f5428" title="Write all nodes of a low-level list to a file into XML.">_gdsl_list_write_xml()</a> </dd></dl>

</div>
</div>
</div><!-- contents -->
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Wed Jun 12 2013 18:18:47 for gdsl by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
